An OCR is a form of software that can recognize characters as they occur in bitmapped data and convert them into ASCII or other character code. OCR is used in fax/modem and scanner software to allow editing of graphic input.
The accuracy of the final product of optical character recognition depends in large part on the print quality and complexity (mix of typefaces, lines and graphics) of the original document. There are certain typefaces and formats that are not suitable for scanning, though some scanning software can "learn"to read different character sets through user-defined tables. OCR programs include dictionaries that help them recognize characters. New technologies are continually being introduced to compensate for or clean up poor or degraded originals.